#include <iostream>
#include <unistd.h>
#include <signal.h>
#include <sys/types.h>
#include <cstring>
#include <cerrno>
using namespace std;
void method(int sig)
{
    cout<<"I receive a signal: "<<sig<<endl;
}
int main()
{
    signal(SIGFPE,method);
    int a=0;
    a/=0;
    while(1);

    return 0;
}

// void method(int sig)
// {
//     cout << "I get signal: " << sig << endl;
//     alarm(3);
// }
// int main()
// {
//     signal(SIGALRM, method);
//     alarm(5);
//     while (1)
//         ;
//     return 0;
// }

// int main(int argc,char* argv[])
// {
//     if(argc!=3)
//     {
//         cout<<"Usage: "<<argv[0]<<" -signalnum pid"<<endl;
//         return 1;
//     }
//     int signalnum=stoi(argv[1]+1);
//     int pid=stoi(argv[2]);
//     int n=kill(pid,signalnum);
//     if(n<0)
//     {
//         cout<<"errno: "<<errno<<" error string: "<<strerror(errno)<<endl;
//     }
//     return 0;
// }

// void method(int sig)
// {
//     cout<<"I receive signal "<< sig<<endl;
// }
// int main()
// {
//     signal(19,SIG_IGN);
//     while(1)
//     {
//         cout<<getpid()<<endl;
//         sleep(1);
//     };
//     return 0;
// }
// int main()
// {
//     alarm(3);
//     sleep(1);
//     int n=alarm(5);
//     cout<<"n:"<<n<<endl;
//     int count=0;
//     while(1)
//     {
//         cout<<"count: "<<count<<endl;
//         sleep(1);
//         count++;
//     }

//     return 0;
// }